#ifndef __POINTCLOUD_FILTER_H__
#define __POINTCLOUD_FILTER_H__


#include "perception/sensors/base/sensor_base.h"

class PointCloudFilter{
    public:
        PointCloudFilter();
        ~PointCloudFilter() = default;


        // 过滤数据 [a,b]
        void filterAxis(pcl::PointCloud<pcl::PointXYZ>::Ptr& data_input, 
            string axis, double a, double b);
        // 体素网格滤波器（VoxelGrid Filter） 降采样
        void voxelFilter(pcl::PointCloud<pcl::PointXYZ>::Ptr& data_input, 
            double size_x, double size_y, double size_z);
        // 过滤机身数据 凸多边形
        void PolygonFilter(pcl::PointCloud<pcl::PointXYZ>::Ptr& data_input, 
            vector<pair<double, double>> polygon);
        //  点云投影到XY平面
        void projectionXY(pcl::PointCloud<pcl::PointXYZ>::Ptr& data_input);
    private:
        ;

};


#endif